WEB漏洞

您所在的位置:网站首页 ctf session 绕过 WEB漏洞

WEB漏洞

2023-08-31 18:18| 来源: 网络整理| 查看: 265

WEB漏洞-XSS跨站之代码绕过与httpOnly绕过 什么是HttpOnly?对方开启HttpOnly你在盗取cookie失败的情况下可以采用其他方案手工判断xss跨站漏洞常用代码:echoimg标签csshrefform标签input标签iframe标签svg标签 level 1level 2(">闭合标签绕过)如何判断是双引号闭合还是单引号闭合level 3(事件绕过+'符号闭合)level 4(事件绕过+"符号闭合)level 5(herf绕过+符号闭合)level 6(大小写绕过)level 7(双写绕过)level 8(编码绕过)level 9(特殊绕过)less 10(type绕过)level 11(referer头绕过)level 12(agent绕过)level 13(cookie绕过)level 14level 15(文件包含)level 16(%0a绕过)level 17(闭合标签绕过)level 18(闭合标签绕过)level 19level 20

什么是HttpOnly?

如果您在cookie中设置了HttpOnly属性,那么通过js脚本将无法读取到cookie信息,这样能有效的防止XSS攻击,具体一点的介绍请google进行搜索。

介绍 PHP设置COOKIE的HttpOnly属性

作用:仅仅是防止通过js脚本读取到cookie信息 虽然设置了httponly之后拿不到cookie,但是还是存在xss跨站语句,阻止的仅仅是获取cookie 在这里插入图片描述

对方开启HttpOnly你在盗取cookie失败的情况下可以采用其他方案

登陆后台权限方式 1.以cookie形式 2.直接账号密码登录: 保存账号密码读取:通过读取他保存在本地的数据 (需要xss产生于登录地址,利用表单劫持) 在这里插入图片描述 type、id、name通过查看网站源代码中的登录框表单 在这里插入图片描述

没保存账号密码读取:通过表单(登录框)劫持数据 (产生在后台的XSS,例如存储型XSS留言等) 在这里插入图片描述 劫持原理: 抓取数据包另外发送一份到跨站平台 在这里插入图片描述 但是如果是https网站的话,数据是进行了ssl加密,获取了数据之后也是很难读取到账号密码的,鸡肋方法。

手工判断xss跨站漏洞

靶场:xss_labs

常用代码: echo img标签 css href 标准格式 baidu XSS利用方式1 aa aa aa XSS利用方式2 alert('xss') aa XSS利用方式3 aa XSS利用方式4 aa form标签 XSS利用方式1 XSS利用方式2 input标签 标准格式 利用方式1 利用方式2 利用方式4 alert('xss') iframe标签 XSS利用方式1 XSS利用方式2 XSS利用方式3 XSS利用方式3 svg标签 level 1

直接在name赋值个弹窗即可 在这里插入图片描述

level 2(">闭合标签绕过)

尝试赋值

alert()

发现失败,查看源代码 发现存在一个htmlspecialchars转化函数 在这里插入图片描述 分析发现这个函数是将字符串实体化了 htmlspecialchars() 函数把预定义的字符转换为 HTML 实体, 把符号转换为实体化标签,xss经常过滤的情况。 预定义的字符是: & (和号)成为 & " (双引号)成为 " ’ (单引号)成为 ’ < (小于)成为 (大于)成为 > 实例:

结果: 在这里插入图片描述 所以我们不能使用带的进行payload,都是回显的地方由两处,第二个地方是没有函数转义的 在这里插入图片描述 所以我们可以闭合前面的input语句,然后加入alert

">alert(1)

在这里插入图片描述

如何判断是双引号闭合还是单引号闭合

拿level2为例子 输入' 审查元素 在这里插入图片描述 输入" 审查元素 在这里插入图片描述 输入1 审查元素 在这里插入图片描述 三者对比,可知是双引号闭合

level 3(事件绕过+'符号闭合)

测试上述两种代码发现都不行,查看源代码发现两处的字符串都被htmlspecialchars函数转义了,所以我们不能使用来payload,那么我们可以利用鼠标点击事件进行payload 在这里插入图片描述 payload语句

'οnclick='alert(1)

前面的单引号与value的左边的单引号闭合,后面的双引号与value的右边的单引号闭合 提交后如何点击输入框成功 在这里插入图片描述

level 4(事件绕过+"符号闭合)

测试第3关的代码发现不行,f12查看元素发现 在这里插入图片描述 value因为是双引号没有闭合掉,所以我们将单引号改为双引号即可通过

"οnclick="alert(1) level 5(herf绕过+符号闭合)

尝试使用

"οnclick="alert(1)

发现on进行替换变成o_n,那么我们就不能使用鼠标事件了在这里插入图片描述 查看元素,发现这个函数可能是在input里面执行的,那么我们可以将

然后点击输入框附近的链接即可成功。

level 6(大小写绕过)

使用前5次的payload,发现都不行,on,src,herf都被替换了 在这里插入图片描述 关键字都被过滤,使用大写替绕过

"> level 7(双写绕过)

发现大写也无法绕过了,查看源代码发现有小写函数 在这里插入图片描述 都是发现不是替换成o_n而是将on直接变成空字符,那么我们可以双写进行绕过

"> level 8(编码绕过)

大小写,双写均不行,替换为unicode编码

在这里插入图片描述

level 9(特殊绕过)

查看代码,发现代码会检测是否存在http://在这里插入图片描述

javascript:alert(1)/*http://*/ less 10(type绕过)

f12查看元素发现 在这里插入图片描述 但是type是hidden,被隐藏了,所以我们必须都试一次

t_sort="> level 11(referer头绕过)

在这里插入图片描述

http referer 头,检测来源。 浏览器会检测此JS代码是否来自CSRF跨站请求脚本。检测来源, 在这里插入图片描述 如果管理员在登录状态的情况下,进入攻击方的带有登录时触发了添加管理员账号和密码的漏洞的网站,那么就会导致后台添加了新的账号和密码 如何防范:检测来源,也就是浏览器的同源策略,看看是否来自同一个域名,不是同一个域名的不接受。 token验证会解决这个问题 此关卡在referer头输入即可

t_sort=">

在这里插入图片描述

level 12(agent绕过)

在这里插入图片描述 payload:

t_sort=">

在这里插入图片描述

level 13(cookie绕过)

抓包发现有cookie 尝试在cookie后面加入

t_sort=">

在这里插入图片描述

成功

level 14 level 15(文件包含)

审查元素 在这里插入图片描述

可以看到我们提交的参数src的值被插入到了标签的class属性值中,但是前面还有ng-include这样的字符。 ng-include是angular js中的东西,其作用相当于php的include函数。这里就是将1.gif这个文件给包含进来。 先尝试看看能不能直接闭合标签来触发弹窗 在这里插入图片描述 看出被实体化了 先看看源文件的代码 在这里插入图片描述 在这里插入图片描述 既然此处用了ng-include指令的话,先了解一下其具体的用法。

1、ng-include 指令用于包含外部的 HTML文件。 2、包含的内容将作为指定元素的子节点。 3、ng-include 属性的值可以是一个表达式,返回一个文件名。 4、默认情况下,包含的文件需要包含在同一个域名下。 特别值得注意的几点如下: 1.ng-include,如果单纯指定地址,必须要加引号 2.ng-include,加载外部html,script标签中的内容不执行 3.ng-include,加载外部html中含有style标签样式可以识别

既然这里可以包含html文件,那么也就可以包含之前有过xss漏洞的源文件 构造代码:

?src='level1.php?name=' level 16(%0a绕过)

查看代码发现script,/都进行过滤 在这里插入图片描述 采用换行符%0a进行绕过,触发xss。

level 17(闭合标签绕过)

在这里插入图片描述 闭合即可

level17.php?arg01&arg02="> onmouseover=alert() level 18(闭合标签绕过)

跟less 19一致,只是多了一个注入点通过闭合即可 level17.php?arg01&arg02="> οnmοuseοver=alert()

level 19 level 20


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3